#pragma once
///////////////////////////////////////////////////////////////////
// 该模块为日志功能
///////////////////////////////////////////////////////////////////
#include "comm.hpp"
#include "util.hpp"
namespace ns_log
{
    using namespace ns_util;
    enum
    {
        NORMAL,
        DEBUG,
        WARNING,
        ERROR,
        FATAL
    };
    // 此函数功能为打印日志信息
    // level:日志等级 file_name:文件名称 line:行号
    inline std::ostream &Log(const std::string &level, const std::string &file_name, int line)
    {
        // 添加日志等级
        std::string message = "[";
        message += level;
        message += "]";

        // 添加报错名称
        message += "[";
        message += file_name;
        message += "]";

        // 添加行号
        message += "[";
        message += std::to_string(line);
        message += "]";

        // 添加时间
        message += "[";
        message += TimeUtil::GetDayAndTime();
        message += "]";

        // 将其放入cout缓冲区
        std::cout << message;
        return std::cout;
    }
// 使用宏进行替换,#level,显示字符串
#define LOG(level) Log(#level, __FILE__, __LINE__)
}